package com.csz.actions;

import com.csz.dao.Persistencia;
import com.csz.model.Imagem;
import com.csz.model.Pais;
import com.csz.sql.NamedQueryContainer;
import com.csz.utils.Toolkit;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.RequestDispatcher;

/**
 *
 * @author Leonardo
 */
public class ActionVerPais extends Action {

    @Override
    public void execute() {
        try {
            //Catando informacoes da tela
            String vPais = request.getParameter("idPais");

            //Catando informacoes do pais
            List<Pais> pais = (List<Pais>) Pais.consultar(Integer.parseInt(vPais));

            //enviando informacoes do pais para a tela
            request.getSession().setAttribute("nomePais", pais.get(0).getNome());
            request.getSession().setAttribute("descricaoPais", pais.get(0).getPaiDescricao());

            //Catando itens do tipo culinaria que pertence ai pais
            List params = Arrays.asList(new Object[]{Integer.parseInt(vPais), 1});
            List<Object[]> listaCulinaria = Persistencia.consultarNamedQueryGenerica(NamedQueryContainer.ConsultarCategoriaItens, params);

            //Enviando lista para a pagina
            request.getSession().setAttribute("listaCulinaria", listaCulinaria);

            // Catando imagens
            List<Object[]> listaImagensCulinaria = Imagem.consultarPorCategoriaItemId(listaCulinaria);

            //Enviando imagens para tela
            request.getSession().setAttribute("listaImagemCulinaria", listaImagensCulinaria);

            //Catando religiao
            params = Arrays.asList(new Object[]{Integer.parseInt(vPais), 2});
            List<Object[]> listaReligiao = Persistencia.consultarNamedQueryGenerica(NamedQueryContainer.ConsultarCategoriaItens, params);

            //Enviando lista para a pagina
            request.getSession().setAttribute("listaReligiao", listaReligiao);

            //Catando imagens
            List<Object[]> listaImagensReligiao = Imagem.consultarPorCategoriaItemId(listaReligiao);

            //Enviando imagens para tela
            request.getSession().setAttribute("listaImagemReligiao", listaImagensReligiao);

            //Catando Turismo Arquitetonico
            params = Arrays.asList(new Object[]{Integer.parseInt(vPais), 4});
            List<Object[]> listaArquitetonico = Persistencia.consultarNamedQueryGenerica(NamedQueryContainer.ConsultarCategoriaItens, params);

            //Enviando lista para a pagina
            request.getSession().setAttribute("listaArquitetonico", listaArquitetonico);

             //Catando imagens
            List<Object[]> listaImagensArquitetonico = Imagem.consultarPorCategoriaItemId(listaArquitetonico);

            //Enviando imagens para tela
                request.getSession().setAttribute("listaImagemArquitetonico", listaImagensArquitetonico);

            //Catando Turismo Historico
            params = Arrays.asList(new Object[]{Integer.parseInt(vPais), 5});
            List<Object[]> listaHistorico = Persistencia.consultarNamedQueryGenerica(NamedQueryContainer.ConsultarCategoriaItens, params);

            //Enviando lista para a pagina
            request.getSession().setAttribute("listaHistorico", listaHistorico);

             List<Object[]> listaImagensHistorico = Imagem.consultarPorCategoriaItemId(listaHistorico);

            //Enviando imagens para tela
            request.getSession().setAttribute("listaImagemHistorico", listaImagensHistorico);

            //Catando Turismo Natural
            params = Arrays.asList(new Object[]{Integer.parseInt(vPais), 6});
            List<Object[]> listaNatural = Persistencia.consultarNamedQueryGenerica(NamedQueryContainer.ConsultarCategoriaItens, params);

            //Enviando lista para a pagina
            request.getSession().setAttribute("listaNatural", listaNatural);

             List<Object[]> listaImagensNatural = Imagem.consultarPorCategoriaItemId(listaNatural);

            //Enviando imagens para tela
            request.getSession().setAttribute("listaImagemNatural", listaImagensNatural);

            // Vai tartaruguinha
            RequestDispatcher rd = request.getRequestDispatcher("verPais.jsp");
            rd.forward(request, response);

        } catch (Exception e) {
            request.setAttribute("exception", e.getMessage());
            RequestDispatcher rd = request.getRequestDispatcher("verPais.jsp");
            try {
                rd.forward(request, response);
            } catch (Exception ex) {
            }
        }
    }
}
